安全Docker容器云建设的关键点有哪些
安全Docker容器云建设的关键点有以下这些:
网络设计:随着容器技术在企业生产系统的逐步落地,用户对于容器云的网络特性要求也越来越高,跨主机容器间的网络互通已经成为最基本的要求。例如Docker,Docker一开始并没有考虑到多主机互联的网络解决方案。之后Docker收购了一家网络解决方案公司Socketplane,将原有的网络部分抽离,独立成Docker的网络库,即libnetwork。
持久化存储:首先声明,运行容器并不意味着完全摒弃数据持久化。对于在容器中运行的应用,其需要保存的数据也可以写入持久化的Volume数据卷。目前,主要支持Docker或Kubernetes的Volume。Docker发布了容器卷插件规范,允许第三方厂商的数据卷在Docker引擎中提供数据服务。
日志集中管理:容器常被用来运行需要快速故障迁移、弹性伸缩的应用或微服务,因此随着容器中运行的应用发生迁移、弹性伸缩,应用日志很可能会在不同的运行节点中产生,这给容器应用的日志监控和问题排查带来很大的麻烦。相对来说,与大多数传统应用把日志写在本地文件系统不同,容器应用需要考虑把日志进行集中收集,然后写入外部的集中日志管理系统中。
监控设计:在虚拟机运维时代,Nagios和Zabbix等都是十分经典的性能监控软件。但在容器时代,这些曾经耳熟能详的软件大多不能提供方便的容器化服务的监控体验,社区对开发这类插件和数据收集客户端也并不积极。相反的是许多新生的开源监控项目将对容器的支持放到了关键特性的位置,可以说容器的应用界定了一个全新的监控软件时代。说到容器应用的监控设计,在这里要注意监控是分层的,具体可以分为系统层面、应用层面和服务层面,每个层面都有自己的监控重点。
多租户和权限:顾名思义,多租户就是很多人来租用容器云平台的资源以实现自己的应用托管运维需求。这里面主要涉及多租户、资源管理与分配、安全权限管理这三个问题。从多租户的角度考虑,租户租用容器云平台的资源来托管、开发、部署和运维自己的应用、服务。这部分功能建议统一由运维团队或者系统团队负责,应用系统上云前一般会进行压力测试,有一个容量估算的过程。多租户的安全权限设计涉及容器云平台整体的权限控制架构,最好是实现一个权限中心,由权限中心来实现对容器云各组件及各功能的动态控制,以适应灵活的不同的场景需求。